package com.yxinsur.imc.business.form;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.Date;

@Data
@ToString
public class ContractExpenseDataForm {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("ID,新增为空，编辑有值")
    private Long id;

    @ApiModelProperty("险种id")
    @NotBlank(message="险种id[repoInsId]不能为空")
    private Long repoInsId;

    @ApiModelProperty("协议费用科目id")
    @NotBlank(message="协议费用科目id[contractExpenseId]不能为空")
    private Long contractExpenseId;

    /**
     * 缴费期间下限(含)
     */
    @ApiModelProperty("缴费期间下限(含)")
    @NotBlank(message="缴费期间下限(含)[chargePeriodLowerValue]不能为空")
    private Integer chargePeriodLowerValue;

    /**
     * 缴费期间上限(含)
     */
    @ApiModelProperty("缴费期间上限(含)")
    @NotBlank(message="缴费期间上限(含)[chargePeriodUpperValue]不能为空")
    private Integer chargePeriodUpperValue;

    /**
     * 保障期间-下限(含)
     */
    @ApiModelProperty("保障期间-下限(含)")
    private Integer coveragePeriodLowerValue;

    /**
     * 保障期间-上限(含)
     */
    @ApiModelProperty("保障期间-上限(含)")
    private Integer coveragePeriodUpperValue;

    /**
     * 领取年龄下限
     */
    @ApiModelProperty("领取年龄下限")
    private Integer pensionAgeLower;

    /**
     * 领取年龄上限
     */
    @ApiModelProperty("领取年龄上限")
    private Integer pensionAgeUpper;

    //生效日期
    @ApiModelProperty("产品生效日期（起）")
    private Date startDate;

    //生效日期
    @ApiModelProperty("产品生效日期（止）")
    private Date endDate;

    /**
     * 保单年度下限(含)
     */
    @ApiModelProperty("保单年度下限(含)")
    @NotBlank(message="保单年度下限(含)[payYearLower]不能为空")
    private Integer payYearLower;

    /**
     * 保单年度上限(含)
     */
    @ApiModelProperty("保单年度上限(含)")
    private Integer payYearUpper;

    /**
     * 方案/保险计划 id  imc_ins_scheme的id
     */
    @ApiModelProperty("方案/保险计划 id")
    private Long insSchemeId;

    /**
     * 因子1值
     */
    @ApiModelProperty("因子1值")
    private String factor1Value;

    /**
     * 因子2值
     */
    @ApiModelProperty("因子2值")
    private String factor2Value;

    /**
     * 因子3值
     */
    @ApiModelProperty("因子3值")
    private String factor3Value;

    /**
     * 费率
     */
    @ApiModelProperty("费率")
    private BigDecimal rate;
}
